Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Competitive programming</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Competitive_programming"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Competitive_programming rootpage-Competitive_programming skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Competitive programming</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">
</p>
<p><b>Competitive programming</b> or <b>sport programming</b> is a <a href="Mind_sport" title="Mind sport">mind sport</a> involving participants trying to <a href="Computer_programming" title="Computer programming">program</a> according to provided specifications. The contests are usually held over the <a href="Internet" title="Internet">Internet</a> or a <a href="Local_network" class="mw-redirect" title="Local network">local network</a>. Competitive programming is recognized and supported by several multinational software and <a href="Internet" title="Internet">Internet</a> companies, such as <a href="Google" title="Google">Google</a>,<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> and <a href="Meta_Platforms" title="Meta Platforms">Meta</a>.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>A programming competition generally involves the host presenting a set of <a href="Logic" title="Logic">logical</a> or <a href="Mathematical_problem" title="Mathematical problem">mathematical problems</a>, also known as <a href="Puzzle" title="Puzzle">puzzles</a> or challenges, to the contestants (who can vary in number from tens or even hundreds to several thousand). Contestants are required to write <a href="Computer_program" title="Computer program">computer programs</a> capable of solving these problems. Judging is based mostly upon number of problems solved and time spent on writing successful solutions, but may also include other factors (quality of output produced, execution time, memory usage, program size, etc.).
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>One of the oldest contests known is the <a href="International_Collegiate_Programming_Contest" title="International Collegiate Programming Contest">International Collegiate Programming Contest</a> (ICPC) which originated in the 1970s<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> and has grown to include 88 countries in its 2011 edition.
</p><p>From 1990 to 1994, <a href="Owen_Astrachan" title="Owen Astrachan">Owen Astrachan</a>, Vivek Khera and David Kotz ran one of the first distributed, internet-based programming contests inspired by the ICPC.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p><p>Interest in competitive programming has grown extensively since 2000 to tens of thousands of participants (see <a href="#Notable_competitions">Notable competitions</a>), and is strongly connected to the growth of the Internet, which facilitates holding international contests online, eliminating geographical problems.
</p>
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>The aim of competitive programming is to write computer programs which are able to solve given problems. A vast majority of problems appearing in programming contests are mathematical or logical in nature. Typical such tasks belong to one of the following categories: <a href="Combinatorics" title="Combinatorics">combinatorics</a>, <a href="Number_theory" title="Number theory">number theory</a>, <a href="Graph_theory" title="Graph theory">graph theory</a>, <a href="Algorithmic_game_theory" title="Algorithmic game theory">algorithmic game theory</a>, <a href="Computational_geometry" title="Computational geometry">computational geometry</a>, <a href="String_(computer_science)" title="String (computer science)">string analysis</a>, <a href="Discrete_mathematics" title="Discrete mathematics">discrete mathematics</a> and <a href="Data_structure" title="Data structure">data structures</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> Problems related to <a href="Constraint_programming" title="Constraint programming">constraint programming</a> and <a href="Artificial_intelligence" title="Artificial intelligence">artificial intelligence</a> are also popular in certain competitions.
</p><p>Irrespective of the problem category, the process of solving a problem can be divided into two broad steps: constructing an efficient <a href="Algorithm" title="Algorithm">algorithm</a>, and implementing the algorithm in a suitable <a href="Programming_language" title="Programming language">programming language</a> (the set of programming languages allowed varies from contest to contest). These are the two most commonly tested skills in programming competitions.
</p><p>In most contests, the judging is done automatically by host machines, commonly known as judges. Every solution submitted by a contestant is run on the judge against a set of (usually secret) test cases. Normally, contest problems have an all-or-none marking system, meaning that a solution is "Accepted" only if it produces satisfactory results on all test cases run by the judge, and is rejected otherwise. However, some contest problems may allow for partial scoring, depending on the number of test cases passed, the quality of the results, or some other specified criteria. Some other contests only require that the contestant submit the output corresponding to given input data, in which case the judge only has to analyze the submitted output data.
</p><p>Online judges are online environments in which testing takes place. Online judges have rank lists showing users with the biggest number of accepted solutions and/or shortest execution time for a particular problem.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Notable_competitions">Notable competitions</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Algorithm_competitions">Algorithm competitions</h3></div>
<table class="wikitable">
<caption>
</caption>
<tbody><tr>
<th>Name of the competition<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</th>
<th>Organizers
</th>
<th>Audience
</th>
<th>Description
</th>
<th>Number of participants
</th></tr>
<tr>
<td><a href="Google_Code_Jam" title="Google Code Jam">Google Code Jam</a> (GCJ)
</td>
<td><a href="Google" title="Google">Google</a>
</td>
<td>open
</td>
<td>Annual competition organized and sponsored by <a href="Google" title="Google">Google</a> from 2003 until its cancellation in 2023.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</td>
<td>32,702 (2022)<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><a href="International_Collegiate_Programming_Contest" title="International Collegiate Programming Contest">International Collegiate Programming Contest</a> (ICPC)<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>
</td>
<td>ICPC Foundation
</td>
<td>university students
</td>
<td>Team competition for university students, the contest consists of many regional rounds that conclude in a world final organized yearly. Teams consist of three students from the same university and they are allowed to use only one computer.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</td>
<td>50,000+ (2022)<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><a href="International_Olympiad_in_Informatics" title="International Olympiad in Informatics">International Olympiad in Informatics</a> (IOI)
</td>
<td>IOI
</td>
<td>secondary school students
</td>
<td>International competition for secondary school students. Organized yearly since 1989. Each country can send at most 4 participants to compete.
</td>
<td>349 from 88 countries (2022)<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><a href="Facebook_Hacker_Cup" class="mw-redirect" title="Facebook Hacker Cup">Meta Hacker Cup</a> (formerly <i>Facebook Hacker Cup</i>)
</td>
<td><a href="Meta_Platforms" title="Meta Platforms">Meta Platforms</a>
</td>
<td>open
</td>
<td>Annual competition held since 2011. Organized and sponsored by <a href="Meta_Platforms" title="Meta Platforms">Meta</a> (formerly <a href="Facebook" title="Facebook">Facebook</a>).
</td>
<td>27,604 (2022)<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup>
</td></tr>
<tr>
<td><a href="Topcoder_Open" title="Topcoder Open">Topcoder Open</a> (TCO)
</td>
<td><a href="Topcoder" title="Topcoder">Topcoder</a>
</td>
<td>open
</td>
<td>Annual algorithm competition held from 2001 until its cancellation in 2023<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>
</td>
<td>
</td></tr></tbody></table>
<p>In most of the above competitions, competitions are usually organized in several rounds. They usually start with online rounds, which conclude in the onsite final round. The top performers at IOI and ICPC receive gold, silver and bronze medals. In the other contests, cash prizes are awarded to the top finishers. The competitions also attract the interest of recruiters from multiple software and Internet companies, which often reach out to competitors with potential job offers.
</p>
<div class="mw-heading mw-heading3"><h3 id="Artificial_intelligence_and_machine_learning">Artificial intelligence and machine learning</h3></div>
<ul><li>List may be incomplete</li></ul>
<table class="wikitable">
<tbody><tr>
<th>Name
</th>
<th>Main Organizers
</th>
<th>Description
</th>
<th>Status
</th></tr>
<tr>
<td><a href="Kaggle" title="Kaggle">Kaggle</a>
</td>
<td>Google
</td>
<td>Data science, machine learning and mathematical optimization competition platform and online community.
</td>
<td>Active
</td></tr>
<tr>
<td><a href="AI_Challenge" title="AI Challenge">AI Challenge</a>
</td>
<td>University of Waterloo
</td>
<td>International artificial intelligence programming contest that ran from 2009 to 2011.
</td>
<td>Inactive
</td></tr>
<tr>
<td><a href="Halite_AI_Programming_Competition" title="Halite AI Programming Competition">Halite AI Programming Competition</a>
</td>
<td>Two Sigma, Cornell Tech
</td>
<td>Computer programming contest where participants build bots in desired programming language to compete on a two-dimensional battlefield.
</td>
<td>Unknown
</td></tr>
<tr>
<td><a href="Russian_AI_Cup" title="Russian AI Cup">Russian AI Cup</a>
</td>
<td>Mail.Ru Group, My.com
</td>
<td>Annual artificial intelligence programming contest.
</td>
<td>Unknown
</td></tr></tbody></table>
<div class="mw-heading mw-heading3"><h3 id="Contests_focusing_on_open-source_technologies">Contests focusing on open-source technologies</h3></div>
<ul><li>List may be incomplete</li></ul>
<table class="wikitable" border="1">

<tbody><tr>
<th>Contest Name
</th>
<th>Main Sponsor
</th>
<th>Description
</th>
<th>Running Since
</th>
<th>Usual Time
</th>
<th>Next Application Cycle
</th>
<th>Status
</th></tr>
<tr>
<td><a href="Multi-Agent_Programming_Contest" title="Multi-Agent Programming Contest">Multi-Agent Programming Contest</a>
</td>
<td><a href="Clausthal_University_of_Technology" title="Clausthal University of Technology">Clausthal University of Technology</a> in conjunction with agent-oriented workshops
</td>
<td>Annual international programming competition to stimulate research in the area of <a href="Multi-agent_system" title="Multi-agent system">multi-agent system</a> development and <a href="Agent-oriented_programming" title="Agent-oriented programming">programming</a>.
</td>
<td>2005
</td>
<td>Sept
</td>
<td>Sept 2011
</td>
<td>Active
</td></tr>
<tr>
<td><a href="Google_Summer_of_Code" title="Google Summer of Code">Google Summer of Code</a>
</td>
<td><a href="Google_Inc." class="mw-redirect" title="Google Inc.">Google Inc.</a>
</td>
<td>An annual program in which Google awards <a href="Stipend" title="Stipend">stipends</a> to hundreds of students who successfully complete a requested free software/open-source coding project during the summer.
</td>
<td>2005
</td>
<td>Mar-Aug
</td>
<td>Mar 23- Apr 3
</td>
<td>Active
</td></tr>
<tr>
<td><a href="Google_Highly_Open_Participation_Contest" class="mw-redirect" title="Google Highly Open Participation Contest">Google Highly Open Participation Contest</a>
</td>
<td>Google Inc.
</td>
<td>A contest run by Google in 2007-8 aimed at high school students. The contest is designed to encourage high school students to participate in open-source projects.
</td>
<td>2007
</td>
<td>Nov-Feb
</td>
<td>Unknown
</td>
<td>Unknown
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Online_platforms">Online platforms</h2></div>
<p>The programming community around the world has created and maintained several internet-resources dedicated to competitive programming. They offer standalone contests with or without minor prizes. Users will typically be assigned a rating based on their performance on said contests. The archives of past problems are popular resources for training in competitive programming. There are several organizations that host programming competitions on a regular basis. These include:
</p>
<table class="wikitable sortable">

<tbody><tr>
<th style="min-width:25%">Name
</th>
<th>Description
</th></tr>
<tr>
<td><a href="Advent_of_Code" title="Advent of Code">Advent of Code</a>
</td>
<td>An annual programming competition taking place during <a href="Advent" title="Advent">Advent</a>, with a new pair of puzzles released each day, up to and including Christmas Day. The second problem of each day is locked until the completion of the first part, and usually follows on from it logically. There are both global and private leaderboards for each year, where rankings are based on who solves the problem first.
</td></tr>
<tr>
<td><a href="CodeChef" title="CodeChef">CodeChef</a><sup id="cite_ref-Luigi16_17-0" class="reference"><a href="#cite_note-Luigi16-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-oi_vol8_18-0" class="reference"><a href="#cite_note-oi_vol8-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</td>
<td>Maintained by Unacademy, it hosts a 3-day-long contest and a couple of short contests every month (one IOI styled called Lunchtime and another ICPC styled called Cook-Off), and provides a contest hosting platform to educational institutions for free. The top two winners of the long contest win cash prizes while the top 10 global get a t-shirt.
</td></tr>
<tr>
<td><a href="Codeforces" title="Codeforces">Codeforces</a><sup id="cite_ref-sigcse16_19-0" class="reference"><a href="#cite_note-sigcse16-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Luigi16_17-1" class="reference"><a href="#cite_note-Luigi16-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</td>
<td>Russian platform, maintained by <a href="ITMO_University" title="ITMO University">ITMO University</a>, which provides frequent (up to two per week) 2-3 hour contests (available in English and Russian). Users can also participate on contests published by other users on the "gym" section, submit additional test cases to "hack" submissions from other competitors during contests, write blogs to share techniques with one another and see the source code for the solutions from other users. Contestants that achieve a high enough rating may be granted additional features like being able to add tags to problems and propose problem sets to official contests.
</td></tr>
<tr>
<td><a href="CodinGame" title="CodinGame">CodinGame</a>
</td>
<td><a href="Puzzle" title="Puzzle">Puzzles</a> (increasing difficulty), <a href="Code_golf" title="Code golf">code golf</a>. Hosts regular online competitions (coding games and programming challenges).
</td></tr>
<tr>
<td><a href="Codewars" title="Codewars">Codewars</a>
</td>
<td>A community-driven platform with in <a href="Online_integrated_development_environment" title="Online integrated development environment">Online integrated development environment</a> where users solve <a href="Kata" title="Kata">kata</a>—small coding challenges—in a wide variety of languages. Users earn ranks and honor as they complete challenges and create new ones. Emphasizes learning through practice and peer review, with solutions and discussions available after each challenge is completed.
</td></tr>
<tr>
<td><a href="HackerEarth" title="HackerEarth">HackerEarth</a><sup id="cite_ref-Luigi16_17-2" class="reference"><a href="#cite_note-Luigi16-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup></td>
<td><a href="Bangalore" class="mw-redirect" title="Bangalore">Bangalore</a>, <a href="India" title="India">India</a> based company providing an online contest like environment aiming at providing recruitment assessment solutions.
</td></tr>
<tr>
<td><a href="HackerRank" title="HackerRank">HackerRank</a>
</td>
<td>HackerRank offers programming problems in different domains of Computer Science. It also hosts annual Codesprints which help connect the coders and <a href="Silicon_Valley" title="Silicon Valley">Silicon Valley</a> startups.
</td></tr>
<tr id="leetcode">
<td><a href="Leetcode" class="mw-redirect" title="Leetcode">LeetCode</a>
</td>
<td>LeetCode has over 2,300 questions covering many different programming concepts and offers weekly and bi-weekly contests. The programming tasks are offered in English and Chinese.
</td></tr>
<tr>
<td><a href="Project_Euler" title="Project Euler">Project Euler</a><sup id="cite_ref-oi_vol8_18-1" class="reference"><a href="#cite_note-oi_vol8-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup></td>
<td>Large collection of <a href="Computational_mathematics" title="Computational mathematics">computational math</a> problems (i.e. not directly related to programming but often requiring programming skills for solving). Different from other online judges, source code is not necessary to submit solutions. Instead, each problem just requires a numerical answer (which is normally too large to guess or calculate by hand), allowing users to use any methods they see fit for solving the problems, including whether or not to choose a programming language.
</td></tr>
<tr>
<td><a href="SPOJ" title="SPOJ">SPOJ</a><sup id="cite_ref-Luigi16_17-3" class="reference"><a href="#cite_note-Luigi16-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</td>
<td>Polish <a href="Online_judge" class="mw-redirect" title="Online judge">online judge</a> system which provides a lot of problems for training, and provides a platform for other organizers to host their programming contests.
</td></tr>
<tr>
<td><a href="Topcoder" title="Topcoder">Topcoder</a><sup id="cite_ref-sigcse16_19-1" class="reference"><a href="#cite_note-sigcse16-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Luigi16_17-4" class="reference"><a href="#cite_note-Luigi16-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</td>
<td>US resource and company, which organizes contests and also provides industrial problems as a kind of free-lance job; it offers dozens of short contests and several long ("marathons") every year. Specific feature - participants have a chance to check the correctness of other contestants' solutions after the coding phase and before final automatic testing (so-called "challenge phase").
</td></tr>
<tr>
<td><a href="UVa_Online_Judge" title="UVa Online Judge">UVa Online Judge</a><sup id="cite_ref-sigcse16_19-2" class="reference"><a href="#cite_note-sigcse16-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Luigi16_17-5" class="reference"><a href="#cite_note-Luigi16-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</td>
<td>Contains over 4,500 problems for practising. Hosts regular online competitions. Opened in 1995, it is one of the oldest such websites.
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Benefits_and_criticism">Benefits and criticism</h2></div>
<p>Participation in programming contests may increase student enthusiasm for <a href="Computer_science" title="Computer science">computer science</a> studies. The skills acquired in ICPC-like programming contests also improve career prospects, as they help to pass the "technical interviews", which often require candidates to solve complex programming and algorithmic problems on the spot.<sup id="cite_ref-sigcse16_19-3" class="reference"><a href="#cite_note-sigcse16-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>
</p><p>There has also been criticism of competitive programming, particularly from professional <a href="Software_development" title="Software development">software developers</a>.<sup id="cite_ref-rg15_21-0" class="reference"><a href="#cite_note-rg15-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> One critical point is that many fast-paced programming contests teach competitors bad programming habits and code style (like unnecessary use of <a href="Macro_(computer_science)" title="Macro (computer science)">macros</a>, lack of <a href="Object-oriented_programming" title="Object-oriented programming">OOP</a> abstraction and comments, use of short variable names, etc.).<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-rg15_21-1" class="reference"><a href="#cite_note-rg15-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> Also, by offering only small algorithmic puzzles with relatively short solutions, programming contests like ICPC and IOI do not necessarily teach good <a href="Software_engineering" title="Software engineering">software engineering</a> skills and practices, as real software projects typically have many thousands of <a href="Source_lines_of_code" title="Source lines of code">lines of code</a> and are developed by large teams over long periods of time.<sup id="cite_ref-rg15_21-2" class="reference"><a href="#cite_note-rg15-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> <a href="Peter_Norvig" title="Peter Norvig">Peter Norvig</a> stated that based on the available data, being a winner of programming contests correlated negatively with a programmer's performance at their job at Google (even though contest winners had higher chances of getting hired).<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> Norvig later stated that this correlation was observed on a small <a href="Data_set" title="Data set">data set</a>, but that it could not be confirmed after examining a larger data set.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup>
</p><p>Yet another sentiment is that rather than "wasting" their time on excessive competing by solving problems with known solutions, high-profile programmers should rather invest their time in solving real-world problems.<sup id="cite_ref-rg15_21-3" class="reference"><a href="#cite_note-rg15-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Literature">Literature</h2></div>
<ul><li>Halim, S., Halim, F. (2013). <i>Competitive Programming 3: The New Lower Bound of Programming Contests</i>. Lulu.</li>
<li>Laaksonen, A. (2017). <i>Guide to Competitive Programming</i> (Undergraduate Topics in Computer Science). Cham: Springer International Publishing.</li>
<li>Xu, X. (2020) <i>The development, prosperity and decline of Olympic in Informatics</i>. Published <a rel="nofollow" class="external text" href="https://archive.org/details/oi.pdf">online</a>.</li>
<li>Kostka, B. (2021). <i>Sports programming in practice.</i> University of Wrocław.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Algorithmic_Puzzles" title="Algorithmic Puzzles">Algorithmic Puzzles</a></li>
<li>Category:Computer science competitions</li>
<li><a href="Code_golf" title="Code golf">Code golf</a></li>
<li><a href="Game_jam" title="Game jam">Game jam</a></li>
<li><a href="Hackathon" title="Hackathon">Hackathon</a></li>
<li><a href="Hackathon#Datathon" title="Hackathon">Datathon</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20230531191912/http://code.google.com/codejam/">"Google Code Jam"</a>. <i>google.com</i>. Archived from <a rel="nofollow" class="external text" href="https://code.google.com/codejam">the original</a> on May 31, 2023<span class="reference-accessdate">. Retrieved <span class="nowrap">February 20,</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120216103218/http://community.topcoder.com/tco12/overview-sponsor/tco12-sponsor-google/">"TCO12 Sponsor: Google - TCO 12"</a>. <i>topcoder.com</i>. Archived from <a rel="nofollow" class="external text" href="http://community.topcoder.com/tco12/overview-sponsor/tco12-sponsor-google/">the original</a> on February 16, 2012.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.facebook.com/hackercup">"Facebook Hacker Cup"</a>. <i>Facebook</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 20,</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFLiChoiChungKushman2022" class="citation journal cs1">Li, Yujia; Choi, David; Chung, Junyoung; Kushman, Nate; Schrittwieser, Julian; Leblond, Rémi; Eccles, Tom; Keeling, James; Gimeno, Felix; Lago, Agustin Dal; Hubert, Thomas; Choy, Peter; d'Autume, Cyprien de Masson; Babuschkin, Igor; Chen, Xinyun (December 9, 2022). "Competition-Level Code Generation with AlphaCode". <i>Science</i>. <b>378</b> (6624): <span class="nowrap">1092–</span>1097. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/2203.07814">2203.07814</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1126%2Fscience.abq1158">10.1126/science.abq1158</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0036-8075">0036-8075</a>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFKheraAstrachanKotz1993" class="citation journal cs1">Khera, Vivek; Astrachan, Owen; Kotz, David (1993). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170808235401/http://cs.dartmouth.edu/~dfk/papers/astrachan-contest.pdf">"The internet programming contest"</a> <span class="cs1-format">(PDF)</span>. <i>ACM SIGCSE Bulletin</i>. <b>25</b> (1): <span class="nowrap">48–</span>52. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F169073.169105">10.1145/169073.169105</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0097-8418">0097-8418</a>. Archived from <a rel="nofollow" class="external text" href="https://www.cs.dartmouth.edu/~dfk/papers/astrachan-contest.pdf">the original</a> <span class="cs1-format">(PDF)</span> on August 8, 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">March 10,</span> 2020</span>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFPak" class="citation web cs1">Pak, Igor. <a rel="nofollow" class="external text" href="https://www.math.ucla.edu/~pak/courses/182-Summer-2022/182-Summer-2022.html">"Algorithms"</a>. <i>Math 182</i>. University of California, Los Angeles<span class="reference-accessdate">. Retrieved <span class="nowrap">March 31,</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><a href="https://archive.org/details/programmingchall0000skie" class="extiw external" title="iarchive:programmingchall0000skie">Programming Challenges (Skiena &amp; Revilla)</a> <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>0387001638</bdi>, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0387001630</bdi></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFKostka2021" class="citation book cs1">Kostka, Bartosz (2021). <a rel="nofollow" class="external text" href="https://kostka.dev/sp/spbook.pdf"><i>Sports Programming in Practice</i></a> <span class="cs1-format">(PDF)</span>. University of Wrocław.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developers.googleblog.com/2023/02/celebrate-googles-coding-competitions.html">"Celebrate Google's Coding Competitions with a final round of programming fun"</a>. <i>Google Developers Blog</i>. Google<span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20230627024458/https://codingcompetitions.withgoogle.com/codejam/round/0000000000876ff1">"Code Jam - Google's Coding Competitions"</a>. <i>Coding Competitions</i>. Archived from <a rel="nofollow" class="external text" href="https://codingcompetitions.withgoogle.com/codejam/round/0000000000876ff1">the original</a> on June 27, 2023<span class="reference-accessdate">. Retrieved <span class="nowrap">February 26,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://icpc.global/static/media/mainLogoMobile.12b91576.png">"ICPC"</a>. <i>icpc.global</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 26,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.icpc.global/worldfinals-programming-environment/">"Programming Environment – ICPC Documents"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">February 15,</span> 2024</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://icpc.global/static/media/mainLogoMobile.12b91576.png">"ICPC"</a>. <i>icpc.global</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 26,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://stats.ioinformatics.org/olympiads/">"Olympiads"</a>. <i>stats.ioinformatics.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 26,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.facebook.com/codingcompetitions/hacker-cup/2022/qualification-round">"Meta Hacker Cup - 2022 - Qualification Round"</a>. <i>www.facebook.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 26,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://discussions.topcoder.com/discussion/26097/faq-topcoder-community-town-hall-with-doug-hanson-topcoder-ceo">"FAQ - Topcoder Community Town Hall with Doug Hanson, Topcoder CEO"</a>. <i>Topcoder</i><span class="reference-accessdate">. Retrieved <span class="nowrap">February 28,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-Luigi16-17"><span class="mw-cite-backlink">^ <a href="#cite_ref-Luigi16_17-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Luigi16_17-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Luigi16_17-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Luigi16_17-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Luigi16_17-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-Luigi16_17-5"><sup><i><b>f</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFLuigiFarinaLauraNanni2016" class="citation journal cs1">Luigi, William Di; Farina, Gabriele; Laura, Luigi; Nanni, Umberto; Temperini, Marco; Versari, Luca (2016). <a rel="nofollow" class="external text" href="https://ioinformatics.org/journal/v10_2016_207_222.pdf">"oii-web: an Interactive Online Programming oii-web: an Interactive Online Programming Contest Training System"</a> <span class="cs1-format">(PDF)</span>. <i>Olympiads in Informatics</i>. <b>10</b>: <span class="nowrap">207–</span>222. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.15388%2Fioi.2016.13">10.15388/ioi.2016.13</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:6877554">6877554</a>.</cite></span>
</li>
<li id="cite_note-oi_vol8-18"><span class="mw-cite-backlink">^ <a href="#cite_ref-oi_vol8_18-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-oi_vol8_18-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFCombéfisWautelet2014" class="citation journal cs1">Combéfis, Sébastien; Wautelet, Jérémy (2014). <a rel="nofollow" class="external text" href="https://ioinformatics.org/journal/v8_2014_21_34.pdf">"Programming Trainings and Informatics Teaching Through Online Contests"</a> <span class="cs1-format">(PDF)</span>. <i>Olympiads in Informatics</i>. <b>8</b>: <span class="nowrap">21–</span>34.</cite></span>
</li>
<li id="cite_note-sigcse16-19"><span class="mw-cite-backlink">^ <a href="#cite_ref-sigcse16_19-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-sigcse16_19-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-sigcse16_19-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-sigcse16_19-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFBloomfieldSotomayor" class="citation journal cs1">Bloomfield, Aaron; Sotomayor, Borja. <a rel="nofollow" class="external text" href="https://people.cs.uchicago.edu/~borja/pubs/sigcse2016-programming-contests.pdf">"A Programming Contest Strategy Guide"</a> <span class="cs1-format">(PDF)</span>. <i>SIGCSE '16: Proceedings of the 47th ACM Technical Symposium on Computing Science Education</i>.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite id="CITEREFJackson2013" class="citation journal cs1">Jackson, Dean (December 1, 2013). <a rel="nofollow" class="external text" href="http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/41881.pdf">"The Google Technical Interview. How to Get Your Dream Job"</a> <span class="cs1-format">(PDF)</span>. <i>XRDS: Crossroads, the ACM Magazine for Students</i>. <b>20</b> (2): <span class="nowrap">12–</span>14. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F2539270">10.1145/2539270</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:27549057">27549057</a>.</cite></span>
</li>
<li id="cite_note-rg15-21"><span class="mw-cite-backlink">^ <a href="#cite_ref-rg15_21-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-rg15_21-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-rg15_21-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-rg15_21-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFSmith2015" class="citation web cs1">Smith, Duncan (December 2, 2015). <a rel="nofollow" class="external text" href="https://www.redgreencode.com/the-competitive-programming-debate/">"The Competitive Programming Debate"</a>.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite id="CITEREFHalim" class="citation web cs1">Halim, Steven. <a rel="nofollow" class="external text" href="https://www.comp.nus.edu.sg/~stevenha/cs3233.html">"CS3233 - Competitive Programming"</a>. <i>NUS School of Computing</i>.</cite></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=DdmyUZCl75s">"Winning at programming competitions is a negative factor for being good on the job"</a>. <i><a href="YouTube" title="YouTube">YouTube</a></i>. April 5, 2015.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://news.ycombinator.com/item?id=25425718#up_25426329">"HN discussion on correlation between job performance and competitive programming"</a>. December 2020.</cite></span>
</li>
</ol></div></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-02" href="https://en.wikipedia.org/wiki/?title=Competitive_programming&amp;oldid=1303809795">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>